 
	_data = {
		_strGood: "Good String"
	   ,_null: null
	   ,_undef: undefined
	   ,_func: function dummyFunc(a1,a2,a3){}
	   ,_numInt: 10
	   ,_numFlt: 10.5
	   ,_array: [1,2,3,4]
	   ,_error2: new Error("My Error")
	}
	try{ abc }catch(x){_data._error=x}
    
    
    function doTests(){
//        t_isFunc()

//        t_isError()

//        t_isNum()
          
//        nullIsTests()              
//      

//      
//        isUndef_tests()
//      

        
    }
    
    function __getData(){
    	var wf=	_w.frames["winFrameTest"],wp=_w.parent,wf=_w._winFrameTest,wo=_w.opener
    	return (wf||wp||wf||wo)._data
    }
    
    function t_isFunc(){
    	var _d=__getData(),f
    	
        f=_d._array.join
    	
    	pc(
    		"\n                  f = "+s$(f).abbrev(15).replace(/\n/g, "")
    	   +"\n      isDef(f.call) = "+isDef(f.call)
    	   +"\n isDef(f.arguments) = "+isDef(f.arguments)
    	   +"\n     isDef(f.apply) = "+isDef(f.apply)
    	   +"\n         (typeof f) = "+(typeof f)
    	   +"\n        (typeof(f)) = "+(typeof(f))
    	   +"\n          isFunc(f) = "+isFunc(f)
    	)
    }
    
    
    function t_isError(){
    	var _d=__getData(),x,c
    	
//    	x=_d._error
    	x=_d._error2
    	c=x.constructor
    	p=c.prototype
    		
    	pc(
    		"\n                   x = "+s$(x).abbrev(30).replace(/\n/g, "")
    	   +"\n                   c = "+c
    	   +"\n                   p = "+p
    	   +"\n s$(p).toLowerCase() = "+s$(p).toLowerCase()
    	   +"\n      oGetClassOf(x) = "+oGetClassOf(x)
    	   +"\n            isErr(x) = "+isErr(x)
    	)
    }
    
    function t_isNum(){
    	var a=[null,""," ", " x ", undefined, _w.xxx, "abc", "1", 2, ("abc"*5), new Number(1.5), true, false, "01/1/2001","0xFF","1.34e+10"]
//a=[1,2]
    	for(var i=0;i<a.length;i++){v=a[i];
    		
pc(
	  " v = "+v
   +"\n parseInt(v) = "+parseInt(v)
   +"\n isNaN(parseInt(v)) = "+isNaN(parseInt(v))
   +"\n isNaN(v) = "+isNaN(v)
   +"\n isNaN(v) = "+isNaN(v)
   +"\n v==NaN = "+(v==NaN)
   +"\n v===\"NaN\" = "+(v==="NaN")
   +"\n v===undefined = "+(v===undefined)
   +"\n v===null = "+(v===null)
   +"\n v.trim = "+(isUndef(v)?"(undef)":v.trim)
)
    		
    		pc("isNum("+v+") = " +isNum(v))	
    	}
    }
    
    function isUndef_tests(){
    	var a=[null,""," ", " x ", undefined, _w.xxx, "abc", "1", 2, ("abc"*5), new Number(1.5), true, false, "01/1/2001","0xFF","1.34e+10"]
//a=[1,2]
    	for(var i=0;i<a.length;i++){v=a[i];
    		pc("isUndef("+v+") = " +isUndef(v))	
    	}
    }

    

    
    
    function nullIsTests(){
        var v
        
        v=null
        pc("isStr(null) = "+isStr(null))
        pc("isNum(null) = "+isNum(null))
        pc("   isNaN(null) = "+isNaN(null))
        
        pc("isStr(undefined) = "+isStr(undefined))
        pc("isNum(undefined) = "+isNum(undefined))
        pc("   isNaN(undefined) = "+isNaN(undefined))
    }